package main

import (
	"context"
	"fmt"
	"github.com/go-redis/redis/v8"
	"time"
)

func main() {
	opt, err := redis.ParseURL("redis://:@localhost:6379/0")
	if err != nil {
		panic(err)
	}
	rdb := redis.NewClient(opt)
	fmt.Printf("%T\n", rdb)

	ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
	defer cancel()

	// 直接执行命令获取错误
	err2 := rdb.Set(ctx, "key", 10, time.Hour).Err()
	if err2 != nil {
		fmt.Println(err2)
	} else {
		fmt.Println("set ok")
	}

	// 执行命令获取结果
	val, err := rdb.Get(ctx, "key").Result()
	fmt.Println("key = ", val, err)

	// 操作完成后关闭连接
	defer rdb.Close()
}
